Associating cache memory with a work process

ABSTRACT

Systems, methods, and software described herein provide accelerated input and output of data in a work process. In one example, a method of operating a support process within a computing system for providing accelerated input and output for a work process includes monitoring for a file mapping attempt initiated by the work process. The method further includes, in response to the file mapping attempt, identifying a first region in memory already allocated to a cache service, and associating the first region in memory with the work process.

TECHNICAL FIELD

Aspects of the disclosure are related to computing hardware and softwaretechnology, and in particular to associating cache memory to workprocesses.

TECHNICAL BACKGROUND

An increasing number of data-intensive distributed applications arebeing developed to serve various needs, such as processing very largedata sets that generally cannot be handled by a single computer.Instead, clusters of computers are employed to distribute various tasksor jobs, such as organizing and accessing the data and performingrelated operations with respect to the data. Various applications andframeworks have been developed to interact with such large data sets,including Hive, HBase, Hadoop, Amazon S3, and CloudStore, among others.

At the same time, virtualization techniques have gained popularity andare now commonplace in data centers and other environments in which itis useful to increase the efficiency with which computing resources areused. In a virtualized environment, one or more virtual machines areinstantiated on an underlying computer (or another virtual machine) andshare the resources of the underlying computer. These virtual machinesmay employ the applications and frameworks that typically reside on realmachines to more efficiently process large data sets.

Overview

Provided herein are systems, methods, and software for associating cachememory to a work process. In one example, a method of operating asupport process within a computing system for providing acceleratedinput and output for a work process includes monitoring for a filemapping attempt initiated by the work process. The method furtherincludes, in response to the file mapping attempt, identifying a firstregion in memory already allocated to a cache service, and associatingthe first region in memory with the work process.

In another instance, computer apparatus to provide accelerated input andoutput with respect to a work process includes processing instructionsthat direct a support process of a computing system to monitor for afile mapping attempt initiated by the work process. The processinginstructions further direct the support process to, in response to thefile mapping attempt, identify a first region in memory alreadyallocated to a cache service, and associate the first region in memorywith the work process. The computer apparatus further includes one ormore non-transitory computer readable media that store the processinginstructions.

In a further example, a node computing system for providing acceleratedinput and output with respect to a work process includes the workprocess configured to initiate a file mapping attempt. The nodecomputing system further provides a support process configured toidentify the file mapping attempt. The support process is furtherconfigured to, in response to the file mapping attempt, identify a firstregion in memory already allocated to the cache service, and associatethe first region in memory already allocated to the cache service withthe work process.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. While several implementations are describedin connection with these drawings, the disclosure is not limited to theimplementations disclosed herein. On the contrary, the intent is tocover all alternatives, modifications, and equivalents.

FIG. 1 illustrates map reduce system for processing data within clusternodes.

FIG. 2 illustrates an operational scenario for operating a cluster nodein a map reduce cluster.

FIG. 3 illustrates a method of operating a Java virtual machine torequest a mapped file.

FIG. 4 illustrates a method of operating a kernel to map cache memoryfor a Java virtual machine.

FIG. 5 illustrates cluster node memory for allocating shared memory to acache service.

FIG. 6 illustrates host memory for allocating shared memory in a cacheservice.

FIG. 7 illustrates mapping Java virtual machine memory in physicalmemory.

FIG. 8 illustrates mapping host physical memory for multiple Javavirtual machines.

FIG. 9 illustrates an overview for providing cache service memory to aJava virtual machine.

FIG. 10 illustrates a Hadoop node computing system for mapping sharedmemory to Java virtual machines.

FIG. 11 illustrates an overview for providing cache service memory to awork process.

FIG. 12 illustrates a method of operating a support process in a node toassociate cache memory with a work process.

TECHNICAL DISCLOSURE

Various examples described herein provide for associating cache memoryto work processes. In particular, applications and frameworks have beendeveloped to process vast amounts of data from storage repositoriesusing one or more processing nodes or computing systems. Theseprocessing nodes may include real processing nodes, such as servercomputers, desktop computers, and the like, as well as virtualprocessing nodes that execute within real computing systems.

To process that data, data objects from a storage repository aretransferred into a cluster of nodes allowing each of the processingnodes to have access to the data. Once transferred in, the framework andwork processes, such Java virtual machines, process the data in parallelto generate a query response based on the data. In the present example,a cache service is included that provides shared memory between theprocessing nodes of the cluster and the Java virtual machines (JVMs)executing thereon. This shared cache allows data to be availabledirectly to the JVMs without the need of loading the data into the nodeand copying the data into the JVM. In particular, to provide the sharedmemory to the JVMs, a kernel of the processing node, which may comprisea Linux kernel in many examples, monitors for a file mapping attemptinitiated by a JVM. In response to the attempt, the kernel associatesshared cache service memory to the JVM to allow the JVM direct access tothe data objects that are delivered from the storage repository.

Although the previous example use JVMs, it should be understood that anywork process, such as an application or other work process, mightrequire the same memory association as the JVMs to access cache servicememory. Further, although a kernel was used in the previous example, anysimilar support process that could associate cache service memory to awork process may be used. For example, a work process may initiate arequest to map a file. Responsive to the request, the support processmay identify a region in memory allocated to a cache service, andassociate the region in memory allocated to the cache service to thework process.

To further illustrate the processing of data within a distributed dataprocessing system, FIG. 1 is included. FIG. 1 illustrates map reducesystem 100 for processing data within cluster nodes. System 100 includescluster 110, cache service 120, and storage repository 130. Cluster 110further includes nodes 115-117, and node 117 further includes contents140 that comprise Hadoop 142, Java virtual machines (JVMs) 144, andcache memory 146.

Nodes 115-117 may comprise any real or virtual computing device capableof executing Hadoop or other similar map reduce framework. Nodes 115-117may each include real or virtual processing systems, storage systems,communication interfaces, user interfaces, or other similar computingelements.

Cache service 120 may comprise any real or virtual computing elementcapable of distributing data objects to nodes 115-117. Cache service 120may include real or virtual processing systems, storage systems,communication interfaces, user interfaces, or other similar computingelements. Although illustrated separate in the present example, itshould be understood that cache service 120 might be distributed cacheservice, and might reside wholly or partially on the same devices asnodes 115-117.

Storage repository 130 may comprise one or more storage volumes capableof storing data to be processed by nodes 115-117. Storage repository 130may include disk drives, solid state drives, controllers, and otherelements that provide data to nodes 115-117 using cache service 120.

In operation, cluster 110 is configured with a plurality of nodes115-117 to process large data sets that would be difficult to handlewith a single computing device. Nodes 115-117 may comprise physicalcomputing devices in some examples, but may also comprise virtualcomputing devices or virtual machines that execute on top of realcomputing devices or host systems. These virtual machines may executeusing a hypervisor that abstracts the physical hardware of the hostsystem and provides necessary elements of the host to the virtualmachine. The necessary elements may include virtual hardware, such ascommunication interfaces, processing systems, storage elements, or anyother similar virtualized item.

In the present example, node 117 includes contents 140, which compriseHadoop framework 142, one or more JVMs 144, and cache memory 146.Although Hadoop 142 is included in the present example, it should beunderstood that other map reduce frameworks may be employed acrosscluster 110. In operation, Hadoop 142 requires one or more JVMs 144 toprocess portions of large data sets that are provided by cache service120. To temporarily cache and access the data, shared cache memory 146is included that is shared between node 117 and JVMs 144. Accordingly,as data is passed to node 117, the data is stored within cache memory146 to give quick access to JVMs 144. Although contents are illustratedfor a single node in the present example, it should be understood thatthe contents of nodes 115-116 might be similar to the contents of node117.

To better illustrate the caching of content for a Java virtual machine,FIG. 2 is included. FIG. 2 illustrates an operational scenario 200 foroperating a cluster node in a map reduce cluster. Operational scenario200 may be representative of the operation of any of nodes 115-117.Operational scenario 200 includes kernel memory 210, Java virtualmachine (JVM) memory 220, and cache service memory 230. Kernel memory210 is representative of the memory that is needed to operate theoperating system kernel of the cluster node, such as node 117. Cacheservice memory 230 is representative of the shared memory that is usedby the cache service to import data for processing into the clusternodes. JVM memory 220 is representative of memory needed to execute aJVM spawned by Hadoop or other similar map reduce framework.

In operation, Hadoop or another similar map reduce framework within thecluster node may initiate a JVM to process data that is distributed tothe processing node by a cache service. Once the JVM is initiated andallocated JVM memory 220, the JVM may initiate operation 300 toaccelerate input/output (I/O) within the JVM. To accelerate the I/O forthe JVM, the JVM will inquire the kernel to map a file to provide easierI/O transactions for the JVM. In some examples, this file mappinginquiry may comprise a new I/O channel request to map specific memoryidentified by the kernel to the JVM.

To respond to the inquiry, kernel memory 210 includes operation 400 thatcan be executed to process the inquiry from the JVM. Accordingly, inresponse to identifying the inquiry from the JVM, the kernel identifiesat least a portion of cache service memory 230 to be used for the JVM.Once identified, the portion of cache service memory 230 is associatedwith the JVM. By associating a portion of cache service memory 230, theJVM is permitted quicker access to data provided by the cache servicefor processing.

For example, returning to FIG. 1, a portion of cache memory 146 may beassociated with a JVM in JVMs 144. As a result, if cache service 120attempts to bring data into node 117, the data may be placed in theportion of cache memory 146 that is associated with the JVM. Thus,instead of placing the data first into the node and copying the datainto the JVM, the JVM may have access to the data in the memory that isshared between the node and the JVM.

Referring now to FIG. 3, FIG. 3 illustrates operation 300 for operatinga Java virtual machine to request a mapped file. As depicted, operation300 initiates an attempt to map a file to the JVM (301). This mapping ofa file typically allows the JVM to have access to a memory space for afile that is managed by the node. However, in the present example,rather than mapping a file, the JVM is mapped to at least a portion ofcache service memory 230, which caches data provided by the cacheservice for processing. Thus, rather than reading a file from memory,the JVM is configured to initiate processing of data that is cached inthe mapped portion of cache service memory 230 (302).

Turning to FIG. 4, FIG. 4 illustrates operation 400 for operating a nodekernel to map cache memory for a Java virtual machine. As depicted,operation 400 monitors for an attempt to map a file from one or moreJVMs on the node (401). In response to an attempt, operation 400identifies a region in memory that is allocated to the cache service(402). Once the region in memory is identified, operation 400 associatesthe region in memory with the Java virtual machine (403) to give theJava virtual machine access to data in the cache service memory.

Referring to FIG. 2, the JVM initiates a request to map a file, which isidentified by the kernel of the processing node. Responsive to the maprequest, the kernel identifies at least a portion of cache servicememory 230 that can be allocated for the virtual machine, and allocatesthe portion of cache service memory 230 to the JVM. Once the associationis complete, data may be placed within the mapped cache service memory230 to allow access to the JVM for data processing.

Referring to FIG. 5, FIG. 5 illustrates cluster node memory 500 forallocating shared memory to a cache service. Cluster node memory 500includes framework memory 510, Java virtual machines (JVMs) memory521-522, and cache service memory 530. In the present example, clusternode memory 500 is representative of memory for a physical node within adata processing cluster, however, it should be understood that nodesmight be virtual machines in some examples.

In operation, a cluster node is configured with Hadoop or anothersimilar framework to process large data sets in parallel with othernodes. This framework, represented in memory 500 by Hadoop frameworkmemory 510, initiates JVMs to bring in and process the necessary data.In the present example, the memory for the initiated JVMs is representedin FIG. 5 by JVM memory 521-522 that includes a portion of memory thatis associated with cache service memory 530. As a result of thisassociation, JVM memory 521-522 includes at least a portion of a sharedcache that temporarily stores data from various storage repositories tobe processed.

For example, if a data object were to be loaded into the node forprocessing by a JVM, the object may be placed in the shared portion ofcache service memory 530 and JVMs memory 521-522. Accordingly, once theobject is cached, the appropriate JVM may load and process the objectwithout the need of copying the data object from cluster node memory 500to separate memory for each of the JVMs.

As another illustrated example, FIG. 6 is included. FIG. 6 illustrateshost memory 600 for allocating shared memory in a cache service. Hostmemory 600 is illustrative of a memory system in a host computing systemcapable of initializing and executing a variety of virtual machinenodes. These virtual machine nodes are allocated virtual machine memory611-612 with framework memory 641-642 and Java virtual machine memory621-622. Host memory 600 further includes cache service memory 630 tocache data for processing within the virtual machines.

In operation, a host may be configured to execute a plurality of virtualmachines that act as nodes within a data processing system. Thesevirtual machines may execute on top of a hypervisor that abstracts thephysical components of the host machine and provides them to the virtualmachines for execution. In the present instance, each of the virtualmachines is represented in memory by virtual machine (VM) memory611-612. Within each of the virtual machines, a framework, such asHadoop or other map reduce framework, may be employed that is configuredto process data as it is distributed to the various nodes of thecluster. Here, the framework is represented in memory has framework (FW)memory 641-642.

Once the framework is initiated within the virtual machines, theframework may be used to initiate one or more Java virtual machines orJVMs to assist in the processing of large data sets. These JVMs,represented in memory by JVM memory 621-622, access data that isprovided by the framework and process the data in parallel to derive ananswer to a query by an administrator or some other process. To providedata to the virtual machines, a cache service may be employed in thehost that communicates with one or more storage repositories todistribute data to each of the nodes within the host.

In the present example, to quickly provide the data for each of theJVMs, each JVM is configured to inquire the virtual machine node kernelto map a file to the JVM. Responsive to this request, the kernelidentifies at least a portion of cache service memory 630 that can beallocated to the JVM, and associates the portion of cache service memory630 with the virtual machine. As a result of this association, thevirtual machines are capable of being delivered data from the cacheservice, and placing the data directly into a portion of memory that isaccessible by the JVM.

As illustrated in the present example, cache service memory 630 isconfigured to partially overlap with JVM memory 621-622 within VM memory611-612. Accordingly, the overlapping portions of cache service memory630 serve as the amount of memory that data can be cached in anddirectly accessible by the JVMs. Although illustrated in the presentexample with two virtual machines, it should be understood that anynumber of virtual machines might be implemented within a host. Further,although each of the virtual machines contains a single JVM, it shouldbe understood that any number of JVMs might be spawned within each ofthe virtual machines.

Referring now to FIG. 7 to further demonstrate the mapping of memory toa Java virtual machine. FIG. 7 illustrates mapping Java virtual machinememory in physical memory according to one example. FIG. 7 includesphysical memory 710, node kernel 720, JVM 730, and cache 740. Asdepicted, a node within a processing cluster includes physical memory710 that can be used for a variety of different purposes during theexecution of the node. In the present example, at least a portion ofphysical memory 710 is allocated to cache 740, which is used to cachedata objects as they are distributed within a cluster for parallel dataprocessing. This cache 740 is initially allocated with kernel 720, butis reserved to be accessed by the various Java virtual machines as theyare initiated to process the data that is brought into the node.

Using the present example, JVM 730 may be initiated by Hadoop or anothersimilar map reduce framework to process data within the node. Onceinitiated, JVM 730 may inquire node kernel 720 to map a file for JVM730. Responsive to the inquiry, node kernel 720 may identify at least aportion of cache 740 that can be used for JVM 730, and associate theportion of cache 740 with JVM 730. As a result, JVM 730 may have quickeraccess to data that would otherwise need to be copied into JVM 730before it could be accessed. In one example, a distributed cache servicemay be employed within a cluster to distribute data amongst each of thecluster nodes. This cache service may be configured to place the fileswithin cache 740, which would allow JVM 730 to read the file and makethe necessary processes.

Similar to the operation described above with respect to FIG. 7, FIG. 8is included to illustrate mapping host physical memory for multiple Javavirtual machines and multiple virtual nodes. FIG. 8 includes hostphysical memory 810, node kernels 820-821, JVMs 830-831, and cache 840.Host physical memory 810 is representative of physical memory for a hostcomputing device such as a server or desktop computer with the abilityto execute a plurality of virtual machines. In some instances, the hostcomputing device may include a hypervisor that is configured to abstractthe physical elements of the host computing device and provide them tovirtual machines.

In the present example, host physical memory 810 is configured with acache portion 840, for caching data to be processed by the variousvirtual machines. Accordingly, each virtual machine node kernel 820-821is allocated a portion of the cache to allow access to data that isstored within cache 840. To process the data in each of the virtualmachines, the virtual machines may be configured with Hadoop or anothersimilar distributed framework. This framework may initiate and executeJVMs, such as JVMs 830-831, within the virtual machines to process thenecessary data objects. Once initiated, JVMs 830-831 inquire VM nodekernels 820-821, respectively, to map a file to the JVMs. This mappingof the file is used to allow JVMs 830-831 quick access to files that aretypically only accessible by the VM itself. Responsive to the JVMrequest, VM node kernels 820-821 identify at least a portion of cache840 that can be mapped to each JVM 830-831, and associates theidentified portion with the JVM. As a result of this mapping, data thatis placed in cache 840 for each of VM node kernels 820-821 isconsequently also available to JVMs 830-831.

FIG. 9 illustrates an overview 900 for providing cache service memory toa Java virtual machine. Overview 900 includes physical memory 910, nodekernel 920, JVM 930, cache service memory 940, and JVM portion 945. Nodekernel 920 may represent an operating system kernel in a real device, ormay represent an operating system kernel for a virtual computing deviceor machine. In operation, a node, which may be real or virtual, isinitiated to process large data sets in parallel with other nodes in aprocessing cluster.

When initiated, node kernel 920 monitors for file mapping requests forJVMs initiated on the node to map the JVMs to cache memory 940. Cachememory 940 is allocated memory that allows a cache service to providedata for processing by JVMs executing within the node. Once a job isallocated for the node, Hadoop or some other similar map reduceframework may initiate JVM 930 to assist in the parallel processing ofthe one or more data sets. Once initiated, JVM 930 inquires node kernel920 to have a file mapped to JVM 930. Responsive to the inquiry, nodekernel 920 identifies JVM portion 945 to be mapped to JVM 930. Thisidentified portion of cache service memory 940 is then associated withJVM 930, allowing JVM 930 access to the data that is cached in JVMportion 945. By caching the data in a shared portion of memory, the datacan be stored using the node, but quickly accessed by the JVM executingwithin the node.

Turning to FIG. 10, FIG. 10 illustrates a Hadoop node computing system1000 for mapping shared memory to Java virtual machines. Hadoop nodecomputing system 1000 is an example of nodes 115-117, although otherexamples of nodes may exist. Hadoop node computing system 1000 comprisescommunication interface 1001, user interface 1002, and processing system1003. Processing system 1003 is linked to communication interface 1001and user interface 1002. Processing system 1003 includes processingcircuitry 1005 and memory device 1006 that stores operating software1007.

Communication interface 1001 comprises components that communicate overcommunication links, such as network cards, ports, RF transceivers,processing circuitry and software, or some other communication devices.Communication interface 1001 may be configured to communicate overmetallic, wireless, or optical links. Communication interface 1001 maybe configured to use TDM, IP, Ethernet, optical networking, wirelessprotocols, communication signaling, or some other communicationformat—including combinations thereof.

User interface 1002 comprises components that interact with a user. Userinterface 1002 may include a keyboard, display screen, mouse, touch pad,or some other user input/output apparatus. User interface 1002 may beomitted in some examples.

Processing circuitry 1005 comprises microprocessor and other circuitrythat retrieves and executes operating software 1007 from memory device1006. Memory device 1006 comprises a non-transitory storage medium, suchas a disk drive, flash drive, data storage circuitry, or some othermemory apparatus. Operating software 1007 comprises computer programs,firmware, or some other form of machine-readable processinginstructions. Operating software 1007 includes monitor module 1008,identify module 1009, and associate module 1010, which may be locatedwithin the kernel 1020 for Hadoop node computing system 1000. Operatingsoftware 1007 may further include an operating system, utilities,drivers, network interfaces, applications, or some other type ofsoftware. When executed by circuitry 1005, operating software 1007directs processing system 1003 to operate Hadoop node computing system1000 as described herein.

In particular, Hadoop node computing system 1000 is representative of acomputing system for processing large data sets in a clusterenvironment. Hadoop node computing system 1000 may be representative ofa real computing device, such as a server or desktop, but may also berepresentative of a virtual computing device within a host computer. Inoperation, computing system 1000 is configured to execute Hadoop oranother similar map reduce framework. During the execution of theframework, one or more Java virtual machines JVMs may be initiated,which process the data necessary for the data analysis.

In the present example, once the JVMs are initiated, monitor module 1008is configured to monitor for a file mapping attempt from the Javavirtual machine. The file mapping attempt comprises an attempt by a JVMto map a file in memory to allow quicker access by the JVM to the file.Responsive to identifying a file mapping attempt, identify module 1009identifies a region in memory allocated to a cache service. Priorinitiating any of the JVMs, a cache service may allocate a certainamount of memory in Hadoop node computing system 1000 for caching datato be processed within the system. This memory may be allocated as aportion of kernel 1020, or any other location that is accessible bykernel 1020 and capable of being mapped to the initiated JVMs. Once theregion in memory allocated to the cache service is identified, associatemodule 1010 associates the region in memory allocated to the cacheservice with the Java virtual machine. Accordingly, rather than beingmapped to a file, the virtual machine is associated with memory that isallocated to the cache service. Thus, as data is delivered to computingsystem 1000 for processing by one or more JVMs, the JVMs may have adirect mapping to the cache service to quickly access the informationwithout transferring the data into the JVM.

Although illustrated in the present example with three software modules,it should be understood that any number of software modules might beemployed within computing system 1000 to implement operations describedherein. Further, although illustrated similar to a real computing devicein the present example, it should be understood that computing system1000 might represent a virtual computing device. In such instances,computing system 1000 may be configured to operate within a host withother nodes for processing the large data sets. In some examples, thehost may include a hypervisor that is used to abstract physical elementsof the host machine and provide them to the processing nodes, likecomputing system 1000. As a result, multiple nodes may be capable ofexecution on a single host computing system.

While illustrated in the previous examples using JVMs, it should beunderstood that any work process, such as an application or other workprocess, might require the same file mapping as the JVMs to access cacheservice memory. Further, although a kernel was used in the previousexamples, any similar support process that could associate cache servicememory to a work process may be used. For example, referring to FIG. 11,FIG. 11 illustrates an overview for providing cache service memory to awork process within a computing node or system. FIG. 11 includes nodememory 1110, support process 1120, and work process 1130. The nodememory further includes cache service memory 1140 and work region 1145within cache service memory 1140.

In operation, work process 1130, which may be any java virtual machineor process within the computing node, may initiate a request to map afile. This mapping request is typically used to share a file in memorythat would otherwise need to be copied into memory for work process1130. Responsive to the map request, support process 1120 identifies aregion in memory that is allocated to a cache service, in the presentexample work region 1145, and associates work region 1145 of cacheservice memory 1140 to work process 1130. By allocating work region 1145of cache service memory 1140, work process 1130 may have access to datathat may otherwise need to be copied into a non-shared region of memoryfor the work process.

To further illustrate the operation of support process 1120, FIG. 12 isincluded. FIG. 12 illustrates a method 1200 of operating a supportprocess in a node to associate cache memory with a work process. Themethod includes identifying a request to map a file from a work process(1201). In some examples, the work process may comprise a Java virtualmachine that is configured to assist a map reduce framework, but itshould be understood that the work process may comprise other types ofwork processes. Further, the support process may be the computer nodekernel or Linux kernel in some instances, but may comprise any othersupport process capable of allocating memory within the node. Once thesupport process receives the request to map a file, the support processidentifies a region in memory allocated to the cache service, andassociates the region in memory to the work process. Referring back toFIG. 11, support process 1120 identifies work region 1145 for workprocess 1130. As a result, once work region 1145 is associated with workprocess 1130, work process 1130 can use the cache memory to complete anassigned task.

The functional block diagrams, operational sequences, and flow diagramsprovided in the Figures are representative of exemplary architectures,environments, and methodologies for performing novel aspects of thedisclosure. While, for purposes of simplicity of explanation, methodsincluded herein may be in the form of a functional diagram, operationalsequence, or flow diagram, and may be described as a series of acts, itis to be understood and appreciated that the methods are not limited bythe order of acts, as some acts may, in accordance therewith, occur in adifferent order and/or concurrently with other acts from that shown anddescribed herein. For example, those skilled in the art will understandand appreciate that a method could alternatively be represented as aseries of interrelated states or events, such as in a state diagram.Moreover, not all acts illustrated in a methodology may be required fora novel implementation.

The included descriptions and figures depict specific implementations toteach those skilled in the art how to make and use the best option. Forthe purpose of teaching inventive principles, some conventional aspectshave been simplified or omitted. Those skilled in the art willappreciate variations from these implementations that fall within thescope of the invention. Those skilled in the art will also appreciatethat the features described above can be combined in various ways toform multiple implementations. As a result, the invention is not limitedto the specific implementations described above, but only by the claimsand their equivalents.

What is claimed is:
 1. A method of operating a support process on avirtual machine for providing accelerated input and output for a workprocess, the method comprising: monitoring for a file mapping attemptinitiated by the work process, wherein the work process comprises a Javavirtual machine executing on the virtual machine; in response to thefile mapping attempt, identifying a first region in memory alreadyallocated to a cache service, wherein the memory comprises host memoryaccessible by the virtual machine and the cache service executing atleast partially outside of the virtual machine and wherein the cacheservice is configured to access data for the work process and cache thedata in the memory; and associating the first region in memory with thework process.
 2. The method of claim 1 wherein the support processcomprises a kernel process for the computing system.
 3. The method ofclaim 1 further comprising identifying first data for the Java virtualmachine from a storage repository, and caching, by the cache service,the first data in the first region of the memory.
 4. The method of claim3 wherein the file mapping attempt initiated by the work processcomprises a new input/output channel request initiated by the Javavirtual machine.
 5. The method of claim 1 wherein the cache servicecomprises a distributed cache service for providing data to one or morework processes.
 6. The method of claim 1 further comprising: monitoringfor a second file mapping attempt initiated by a second work process; inresponse to the second file mapping attempt, identifying a second regionin memory already allocated to the cache service; and associating thesecond region in memory with the second work process.
 7. The method ofclaim 1 wherein the work process comprises a work process initiated by aHadoop framework.
 8. The method of claim 1 wherein the work processcomprises a work process initiated by a map reduce framework.
 9. Acomputer apparatus to provide accelerated input and output with respectto a work process, the computer apparatus comprising: processinginstructions that direct a support process of a computing system, whenexecuted by the computing system, to: monitor for a file mapping attemptinitiated by the work process, wherein the work process comprises a Javavirtual machine executing in a virtual machine; in response to the filemapping attempt, identify a first region in memory already allocated toa cache service, wherein the memory comprises host memory accessible bythe virtual machine and the cache service executing at least partiallyoutside of the virtual machine and wherein the cache service isconfigured to access data for the work process and cache the data in thememory; and associate the first region in memory with the work process;and one or more non-transitory computer readable media that store theprocessing instructions.
 10. The computer apparatus of claim 9 whereinthe support process comprises a kernel process for the computing system.11. The computer apparatus of claim 9 wherein the processinginstructions further direct the computing system to identify first datafor the Java virtual machine from a storage repository and cache, by thecache service, the first data in the first region of the memory.
 12. Thecomputer apparatus of claim 11 wherein the file mapping attemptinitiated by the work process comprises a new input/output channelrequest initiated by the Java virtual machine.
 13. The computerapparatus of claim 9 wherein the processing instructions further directthe support process of the computing system to: monitor for a secondfile mapping attempt initiated by a second work process; in response tothe second file mapping attempt, identify a second region in memoryalready allocated to the cache service; and associate the second regionin memory with the second work process.
 14. The computer apparatus ofclaim 9 wherein the work process comprises a work process initiated by aHadoop framework.
 15. The computer apparatus of claim 9 wherein the workprocess comprises a work process initiated by a map reduce framework.16. The computer apparatus of claim 9 wherein the computing systemcomprises a real computing system.
 17. A node computing system forproviding accelerated input and output with respect to a work processexecuting on a virtual machine comprising: the work process configuredto: initiate a file mapping attempt; and a support process executing onthe virtual machine configured to: identify the file mapping attempt; inresponse to the file mapping attempt, identify a first region in memoryalready allocated to a cache service, wherein the memory comprises hostmemory accessible by the virtual machine and the cache service executingat least partially outside of the virtual machine and wherein the cacheservice is configured to access data for the work process and cache thedata in the memory; and associate the first region in memory alreadyallocated to the cache service with the work process.
 18. The nodecomputing system of claim 17 wherein the file mapping attempt comprisesa new input/output channel request.
 19. The node computing system ofclaim 17 wherein the work process comprises a Java virtual machine. 20.the node computing system of claim 17 wherein the support processcomprises a kernel process for the virtual machine.